package org.ace.biz.user;

import io.netty.channel.Channel;

import java.util.List;

import org.ace.dao.model.Player;
public interface IPlayerBiz {
	
	/**
	 * 获取属于该账号的角色列表
	 * 在这里是可以定制一个特殊的传送模型 一次需要的数据不用那么多的化，
	 * 像如果直接传Player就太不合理了
	 * */
	List<Player> getList(Integer accId);
	
	/**
	 * 很多东西是通过配置表执行，如初始化创建角色,的初始位置,初始元宝、金币、体力值
	 * 等级提升的奖励,等等都是通过一张配置表来执行
	 * 
	 * 创建角色
	 */
	boolean create(int job,String name ,Integer accId);
	
	/**
	 * 预留接口 选择进入游戏的角色，进行连接绑定，也就是安全标示的作用
	 * */
	boolean select(int playerId , Channel channel,Integer accId);
	
	/**
	 * 根据连接获取角色ID
	 * */
	Integer getPlayerId(Channel channel);
	
    /**
     * 根据id获取连接
     * */
	Channel getChannel(Integer playerId);
	
	/**
	 * 根据id获取角色
	 * */
	Player get(Integer playerId);
		
	/**
	 * 下线
	 * */
	void offLine (Channel channel);
	
	/**
	 * 角色跳转地图
	**/
	void changeMap(Integer playerId , int map ,float x, float y,float z);
	
	/**
	 * 增加经验
	 * */
	boolean addExp(Integer playerId ,Integer addValue);
	
	/**
	 * 血量变更
	 * */
	void hpChange(Integer playerId ,Integer ChangeValue);
	
	/**
	 * 花费金币
	 * */
	boolean spendMoney(Integer playerId,Integer value);

	/**
	 * 用过channel获取角色id
	 * */
	Integer getUserId(Channel channel);
	
	
	/*
	 * 好友要单独放在一个模块,一个账号的好友一般有三四十个,
	 * */
	
}
